package com.liang.cloud.Dto;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.liang.cloud.Emun.OrderStatusEnum;
import com.liang.cloud.Emun.PayStatusEnum;
import com.liang.cloud.Entity.OrderDetail;
import com.liang.cloud.Util.EnumUtil;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author: 余亮亮
 * @description:  DTO意味着数据传输等等 ，可以省略，在实体类上加上需要的属性，通过@transient可以不对应数据库
 * @create: 2019-12-29 13:17:49
 **/
@Data
public class OrderDTO {

    /** 订单id. */
    private String orderId;

    /** 买家名字. */
    private String buyerName;

    /** 买家手机号. */
    private String buyerPhone;

    /** 买家地址. */
    private String buyerAddress;

    /** 买家微信Openid. */
    private String buyerOpenid;

    /** 订单总金额. */
    private BigDecimal orderAmount;

    /** 订单状态, 默认为0新下单. */
    private Integer orderStatus;

    /** 支付状态, 默认为0未支付. */
    private Integer payStatus;

    /** 创建时间. */
    private Date createTime;

    /** 更新时间. */
    private Date updateTime;

    /** 根据订单状态码获取这个枚举 .*/
    @JsonIgnore
    public OrderStatusEnum getOrderStatusByCode(){
        return EnumUtil.getByCode(orderStatus, OrderStatusEnum.class);
    }

    /** 根据支付状态码获取这个枚举 .*/
    @JsonIgnore
    public PayStatusEnum getPayStatusByCode(){
        return EnumUtil.getByCode(payStatus, PayStatusEnum.class);
    }

    /** 所携带的订单详情.*/
    private List<OrderDetail> list;

    /**所携带的购物车*/
    private List<Integer> cartList;
}
